home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / ugoku / src.lzh / MOVREC / MRCXPAC.C < prev    next >
Text File  |  1994-09-09  |  38KB  |  1,423 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9. #include <tifflib.h>
  10. #include <egb.h>
  11. #include <mos.h>
  12. #include <snd.h>
  13. #include "video.h"
  14. #include "ugoku.h"
  15. #include "old_mov.h"
  16. #include "mrcdef.h"
  17.  
  18. extern    int        mouseSwCheck() ;
  19. extern    int        errorCheck( int ) ;
  20.  
  21. extern    char    *guiEgbPtr ;    /*    EGB é╠âÅü[âNâAâhâîâX    */
  22. extern    char    *rbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  23. extern    char    *bbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  24. extern    int    xtif, ytif ;        /*    tiffdataé╠Åcëíò¥    */
  25. //extern char tifName[][16] ;
  26. //extern int tifTotal ;
  27.  
  28. extern int    baseDialogId ;
  29.  
  30. int    pacDialogId = -1 ;
  31. int    pacSubDialogId = -1 ;
  32. int    pacRoughBar = -1 ;
  33. int    pacRoughNumId = -1 ;
  34. int    pacMesId[8] = -1 ;
  35. int    pacTIconId[2] = -1 ;
  36. int    pacFilterBar = -1 ;
  37. int    pacFilterNumId = -1 ;
  38. int    pacOKBtnId = -1 ;
  39. int    pacCanBtnId = -1 ;
  40. int    pacWaitDialogId = -1 ;
  41. int    pacWaitMesId[2] = -1 ;
  42. int    pacWaitNumId[2] = -1 ;
  43.  
  44. static int svar[] = { 0,0,0,0,0,0,319,239,0,0,0, 0,0,0 };
  45. /*
  46.     svar[] = { frame, total_byte, rough, premove, x0,y0,x1,y1, b,r,g,
  47.            soft, color_rate, mode }
  48.                            ü¬ ü¬é▒é╠2é┬é═èOòöé⌐éτéóé╢é┴é─é═é╛é▀
  49. */
  50. static int pacRough = 0 ;
  51. static int idouMode = 1 ;
  52. static int pacFilter = 0 ;
  53. static int pacOkFlg ;
  54.  
  55. /* ô«ëµì∞ɼ(ÉVïK) */
  56. tifToMov( namemov, path, total, nbuffer )
  57. char *namemov, path[], nbuffer[][16] ;
  58. int total ;
  59. {
  60.     int error ;
  61.  
  62.     MMI_SendMessage( pacDialogId, MM_ATTACH, 1, baseDialogId ) ;
  63.     MTL_setFlagObj( pacTIconId[idouMode+0], (MS_UNSELECT | MS_TOGGLE) ) ;
  64.  
  65.     MMI_SendMessage( pacDialogId, MM_SHOW, 0 ) ; /* î⌐é╣éΘ */
  66.  
  67.     MMI_ExecSystem() ;        /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
  68.     svar[0] = 0 ;
  69.     svar[1] = 0 ;
  70.     svar[2] = pacRough ;
  71.     svar[3] = idouMode * 8 ;
  72.     svar[11] = pacFilter ;
  73.  
  74.     MMI_SendMessage( pacDialogId, MM_ERASE, 0 ) ;
  75.     MMI_SendMessage( pacDialogId, MM_DETACH, 0 ) ;
  76.  
  77.     error = 0 ;
  78.     if( pacOkFlg == TRUE )
  79.     {
  80.         EGB_writePage(guiEgbPtr,0);
  81.         EGB_color( guiEgbPtr, 1, 0 ) ;
  82.         EGB_clearScreen(guiEgbPtr);            /* clear */
  83.         EGB_displayStart(guiEgbPtr,3,0,0);
  84.         EGB_displayStart(guiEgbPtr,2,1,1);
  85.         EGB_displayStart(guiEgbPtr,2,2,2);
  86.         EGB_displayStart(guiEgbPtr,0,0,0);
  87.         EGB_displayStart(guiEgbPtr,1,0,0);
  88.         EGB_displayStart(guiEgbPtr,3,320,240);
  89.         EGB_displayPage(guiEgbPtr,1,3);
  90.         EGB_writePage(guiEgbPtr,1);            /* pageé≡î│é╔û▀é│é╚éóé╞û\æû */
  91.  
  92.         tifToMovSet( total ) ;
  93.  
  94.         SetMouse16( 81, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡âEâGâCâgò\Ī */
  95.         error = mov_save( namemov, path, total, nbuffer ) ;
  96.         SetMouse16( 80, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡î│é╔ */
  97.  
  98.         tifToMovReset() ;
  99.  
  100.         EGB_displayPage(guiEgbPtr,1,2);
  101.     }
  102.  
  103.     MMI_FlushEvnt() ;    /* âCâxâôâgé≡âtâëâbâVâà */
  104.     /* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
  105.     if( mouseSwCheck() )TL_setInvalidMosFlag() ;
  106.  
  107.     if( error )
  108.     {
  109.         errorCheck( error ) ;
  110.     }
  111.  
  112.     return NOERR ;
  113. }
  114.  
  115. /* ô«ëµì∞ɼ(Æ╟ë┴) */
  116. tifToMovAdd( namemov, path, total, nbuffer )
  117. char *namemov, path[], nbuffer[][16] ;
  118. int total ;
  119. {
  120.     int error ;
  121.  
  122.     MMI_SendMessage( pacDialogId, MM_ATTACH, 1, baseDialogId ) ;
  123.     MTL_setFlagObj( pacTIconId[idouMode+0], (MS_UNSELECT | MS_TOGGLE) ) ;
  124.  
  125.     MMI_SendMessage( pacDialogId, MM_SHOW, 0 ) ; /* î⌐é╣éΘ */
  126.  
  127.     MMI_ExecSystem() ;        /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
  128.  
  129.     svar[2] = pacRough ;
  130.     svar[3] = idouMode * 8 ;
  131.     svar[11] = pacFilter ;
  132.  
  133.     MMI_SendMessage( pacDialogId, MM_ERASE, 0 ) ;
  134.     MMI_SendMessage( pacDialogId, MM_DETACH, 0 ) ;
  135.  
  136.     error = 0 ;
  137.     if( pacOkFlg == TRUE )
  138.     {
  139.         EGB_writePage(guiEgbPtr,0);
  140.         EGB_color( guiEgbPtr, 1, 0 ) ;
  141.         EGB_clearScreen(guiEgbPtr);            /* clear */
  142.         EGB_displayStart(guiEgbPtr,3,0,0);
  143.         EGB_displayStart(guiEgbPtr,2,1,1);
  144.         EGB_displayStart(guiEgbPtr,2,2,2);
  145.         EGB_displayStart(guiEgbPtr,0,0,0);
  146.         EGB_displayStart(guiEgbPtr,1,0,0);
  147.         EGB_displayStart(guiEgbPtr,3,320,240);
  148.         EGB_displayPage(guiEgbPtr,1,1);
  149.         EGB_writePage(guiEgbPtr,1);            /* pageé≡î│é╔û▀é│é╚éóé╞û\æû */
  150.  
  151.         error = mov_head_read(namemov, svar) ;    /* headô╟é±é┼frameé≡æùéΘ */
  152.         if( error == NOERR )
  153.         {
  154.             tifToMovSet( total ) ;
  155.             EGB_displayPage(guiEgbPtr,1,3);
  156.  
  157.             SetMouse16( 81, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡âEâGâCâgò\Ī */
  158.             error = mov_save( namemov, path, total, nbuffer ) ;
  159.             SetMouse16( 80, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡î│é╔ */
  160.  
  161.             tifToMovReset() ;
  162.         }
  163.         EGB_displayPage(guiEgbPtr,1,2);
  164.     }
  165.  
  166.     MMI_FlushEvnt() ;    /* âCâxâôâgé≡âtâëâbâVâà */
  167.     /* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
  168.     if( mouseSwCheck() )TL_setInvalidMosFlag() ;
  169.  
  170.     if( error )
  171.     {
  172.         errorCheck( error ) ;
  173.     }
  174.  
  175.     return NOERR ;
  176. }
  177.  
  178. tifToMovSet( total )
  179. int total ;
  180. {
  181.     extern int r_waku_clear1( int, int, int ) ;
  182.  
  183.     EGB_writePage(guiEgbPtr,1);
  184.  
  185.     r_waku_clear1( 320, 240, 2 ) ;
  186.  
  187.     MMI_SendMessage( pacWaitDialogId, MM_ATTACH, 1, baseDialogId ) ;
  188.  
  189.     MMI_SendMessage( pacWaitNumId[0], MM_SETNUMBOX, 5,
  190.         total+svar[0], 0, total+svar[0], 1, 0 ) ;    /* î┤ëµâtâîü[âÇÉöÉ▌ÆΦ */
  191.                     /*    var, min, max, delta, ptColumn */
  192.     MMI_SendMessage( pacWaitNumId[1], MM_SETNUMBOX, 5,
  193.         0, 0, total+svar[0], 1, 0 ) ;        /* ê│Åkâtâîü[âÇÉöÉ▌ÆΦ */
  194.                     /*    var, min, max, delta, ptColumn */
  195.  
  196.     MMI_SendMessage( pacWaitDialogId, MM_SHOW, 0 ) ;
  197.  
  198.     return NOERR ;
  199. }
  200.  
  201. tifToMovReset()
  202. {
  203.     extern int r_waku_del() ;
  204.  
  205.     EGB_writePage(guiEgbPtr,1);
  206.  
  207.     MMI_SendMessage( pacWaitDialogId, MM_ERASE, 0 ) ;
  208.     MMI_SendMessage( pacWaitDialogId, MM_DETACH, 0 ) ;
  209.  
  210.     r_waku_del() ;
  211.  
  212.     return NOERR ;
  213. }
  214.  
  215. /*    initDataIRCPAC:pacRoughBar:MJ_SCRLL40é╠î─é╤Åoé╡è╓Éö    */
  216. int    pacRoughSet(kobj, messId, argc, pev, trigger)
  217. int        kobj ;
  218. int        messId ;
  219. int        argc ;
  220. EVENT    *pev ;
  221. int        trigger ;
  222. {
  223.     int    var, min, max, len, page ;
  224.     MMI_SendMessage( kobj, MM_GETSCROLL, 5,
  225.                                         &var, &min, &max, &len, &page ) ;
  226.     pacRough = var*8 / 16 ;    /* var * Ælé╠ÆåÉSÆl / âoü[é╠ÆåÉSé╠Æl */
  227.     MMI_SendMessage( pacRoughNumId, MM_SETNUMBOX, 5,
  228.                      pacRough, 0, pacRough, 1, 0 ) ;
  229.                     /*    var, min, max, delta, ptColumn */
  230.     MMI_SendMessage( pacRoughNumId, MM_SHOW, 0 ) ;
  231.  
  232.     return NOERR ;
  233. }
  234.  
  235. /*    initDataIRCPAC:pacFilterBar:MJ_SCRLL40é╠î─é╤Åoé╡è╓Éö    */
  236. int    pacFilterSet(kobj, messId, argc, pev, trigger)
  237. int        kobj ;
  238. int        messId ;
  239. int        argc ;
  240. EVENT    *pev ;
  241. int        trigger ;
  242. {
  243.     int    var, min, max, len, page ;
  244.     MMI_SendMessage( kobj, MM_GETSCROLL, 5,
  245.                                         &var, &min, &max, &len, &page ) ;
  246.     pacFilter = var*8 / 16 ;    /* var * Ælé╠ÆåÉSÆl / âoü[é╠ÆåÉSé╠Æl */
  247.     MMI_SendMessage( pacFilterNumId, MM_SETNUMBOX, 5,
  248.                      pacFilter, 0, pacFilter, 1, 0 ) ;
  249.                     /*    var, min, max, delta, ptColumn */
  250.     MMI_SendMessage( pacFilterNumId, MM_SHOW, 0 ) ;
  251.  
  252.     return NOERR ;
  253. }
  254.  
  255. /*    initDataIRCPAC:pacTIconId[0]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  256. /*    initDataIRCPAC:pacTIconId[1]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  257. int    pacIdouFunc(kobj, messId, argc, pev, trigger)
  258. int        kobj ;
  259. int        messId ;
  260. int        argc ;
  261. EVENT    *pev ;
  262. int        trigger ;
  263. {
  264.     if( kobj == pacTIconId[0] )
  265.     {
  266.         MTL_setFlagObj( pacTIconId[0], MS_UNSELECT ) ;
  267.         MTL_resetFlagObj( pacTIconId[idouMode+0],
  268.                                  (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  269.         MMI_SendMessage( pacTIconId[idouMode+0], MM_SHOW, 0 ) ;
  270.         idouMode = 0 ;
  271.     }
  272.     else
  273.     if( kobj == pacTIconId[1] )
  274.     {
  275.         MTL_setFlagObj( pacTIconId[1], MS_UNSELECT ) ;
  276.         MTL_resetFlagObj( pacTIconId[idouMode+0],
  277.                                  (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  278.         MMI_SendMessage( pacTIconId[idouMode+0], MM_SHOW, 0 ) ;
  279.         idouMode = 1 ;
  280.     }
  281.     return NOERR ;
  282. }
  283.  
  284. /*    initDataIRCPAC:pacOKBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  285. /*    initDataIRCPAC:pacCanBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  286. int    pacOKchk(kobj, messId, argc, pev, trigger)
  287. int        kobj ;
  288. int        messId ;
  289. int        argc ;
  290. EVENT    *pev ;
  291. int        trigger ;
  292. {
  293.     pacOkFlg = 0 ;
  294.     if( kobj == pacOKBtnId )pacOkFlg = TRUE ;
  295.     MMI_SetHaltFlag( TRUE ) ;
  296.     return NOERR ;
  297. }
  298.  
  299.  
  300.  
  301.  
  302.  
  303. /* mov2 head read */
  304.  
  305. mov_head_read(namemov, svar)
  306. char *namemov;
  307. int svar[];
  308. {
  309.     FILE *fp;
  310.     int n, temp, page, size;
  311.     char head[256], para[80];
  312.  
  313.     if( ( fp = fopen( namemov, "rb" ) ) == NULL )return 1;
  314.     temp = fread( head, 256, 1, fp );
  315.     if( temp < 1 )goto movh10;
  316.     if( DWORD( head+0 ) != 0x32564f4d )goto movh10;
  317.     if( DWORD( head+4 ) != 16 )goto movh10;
  318.     if( DWORD( head+16) != 320 )goto movh10;
  319.     if( DWORD( h